home *** CD-ROM | disk | FTP | other *** search
- ############################################################# -*- c -*-
- ## generic include for XXX. Do not use directly.
- ##
- ## $Id: node-validate.m2i 12101 2005-04-20 22:45:01Z rstory $
- ##
- ## assumes an integer rc is available and will be tested by caller
- ##
- ########################################################################
- @if $m2c_mark_boundary == 1@
- /** START code generated by $RCSfile$ $Revision: 12101 $ */
- @end@
- ########################################################################
- ##----------------------------------------------------------------------
- ## setup
- ##----------------------------------------------------------------------
- @if $node.enums == 1@
- ##------------------------------------------------------
- @ if "$node.perltype" ne "BITS"@
- /* check that the value is one of defined enums */
- if( (SNMPERR_SUCCESS == rc)
- @ foreach $e $v enum@
- @ include m2c_setup_enum.m2i@
- && ( $m2c_nv_val != $m2c_ename )
- @ end@ # for each
- ) {
- rc = SNMP_ERR_WRONGVALUE;
- }
- ##------------------------------------------------------
- @ else@ # BITS
- ## {
- if($m2c_nv_len > 4) {
- snmp_log(LOG_ERR,"I can not handle BITS > 4 bytes\n");
- rc = SNMP_ERR_GENERR;
- }
- else if (SNMPERR_SUCCESS == rc){
- u_long bits = 0;
- /* check that value is within enum mask */
- memcpy( &bits, $m2c_nv_str, $m2c_nv_len);
- if( (bits | $m2c_enum_mask) != $m2c_enum_mask)
- rc = SNMP_ERR_WRONGVALUE;
- }
- @ end@
- ##----------------------------------------------------------------------
- ## check RANGES
- ##----------------------------------------------------------------------
- @elsif $node.ranges == 1@
- @ if ("$node.decl" eq "long") || ("$node.decl" eq "u_long")@
- @ eval $m2c_nv_rc = "SNMP_ERR_WRONGVALUE"@
- @ eval $m2c_nv_tmp = "$m2c_nv_val"@
- @ else@
- @ eval $m2c_nv_rc = "SNMP_ERR_WRONGLENGTH"@
- @ eval $m2c_nv_tmp = "$m2c_nv_len"@
- @ end@
- /* check defined range(s). */
- if( (SNMPERR_SUCCESS == rc)
- @ foreach $a $b range $node@
- @ if $a == $b@
- && ($m2c_nv_tmp != $a)
- @ else@
- && (($m2c_nv_tmp < $a) || ($m2c_nv_tmp > $b))
- @ end@
- @ end@
- ) {
- rc = $m2c_nv_rc;
- }
- @end@
- ##
- ########################################################################
- @if $m2c_mark_boundary == 1@
- /** END code generated by $RCSfile$ $Revision: 12101 $ */
- @end@
-